
In artificial intelligence, an intelligent agent (IA) is an autonomous entity which observes and acts upon 
an environment (i.e. it is an agent) and directs its activity towards achieving goals (i.e. it is rational).  
Intelligent agents may also learn or use knowledge to achieve their goals. They may be very simple or very complex: 
a reflex machine such as a thermostat is an intelligent agent, as is a human being, as is a community of human 
beings working together towards a goal.
Intelligent agents are often described schematically as an abstract functional system similar to a computer 
program. For this reason, intelligent agents are sometimes called abstract intelligent agents (AIA)  to 
distinguish them from their real world implementations as computer systems, biological systems, or organizations. 
Some definitions of intelligent agents emphasize their autonomy, and so prefer the term autonomous intelligent 
agents. Still others considered goal-directed behavior as the essence of intelligence and so prefer a term 
borrowed from economics, "rational agent".
Intelligent agents in artificial intelligence are closely related to agents in economics, and versions of the 
intelligent agent paradigm are studied in cognitive science, ethics, the philosophy of practical reason, as well as
 in many interdisciplinary socio-cognitive modeling and computer social simulations.
Intelligent agents are also closely related to software agents (an autonomous software program that carries out 
tasks on behalf of users). In computer science, the term intelligent agent may be used to refer to a software 
agent that has some intelligence, regardless if it is not a rational agent by Russell and Norvig's definition. 
For example, autonomous programs used for operator assistance or data mining (sometimes referred to as bots) 
are also called "intelligent agents".
Intelligent agents have been defined many different ways.
According to Nikola Kasabov,  IA systems should exhibit the following characteristics: accommodate new problem 
solving rules incrementally adapt online and in real time, be able to analyze itself in terms of behavior, error 
and success, learn and improve through interaction with the environment (embodiment), learn quickly from 
large amounts of data, have memory-based exemplar storage and retrieval capacities, have parameters to represent 
short and long term memory, age, forgetting, etc.

A simple agent program can be defined mathematically as an agent function  which maps every possible percepts 
sequence to a possible action the agent can perform or to a coefficient, feedback element, function or constant 
that affects eventual actions.
The program agent, instead, maps every possible percept to an action.
We use the term percept to refer to the agent's perceptional inputs at any given instant. 
In the following figures an agent is anything that can be viewed as perceiving its environment through sensors 
and acting upon that environment through actuators.
Simple reflex agents act only on the basis of the current percept, ignoring the rest of the percept history. 
The agent function is based on the condition-action rule: if condition then action. This agent function only 
succeeds when the environment is fully observable. Some reflex agents can also contain information on their 
current state which allows them to disregard conditions whose actuators are already triggered. Infinite loops 
are often unavoidable for simple reflex agents operating in partially observable environments. Note: If the agent
 can randomize its actions, it may be possible to escape from infinite loops.
 A model-based agent can handle a partially observable environment. Its current state is stored inside the agent 
 maintaining some kind of structure which describes the part of the world which cannot be seen. 
 This knowledge about "how the world works" is called a model of the world, hence the name "model-based agent". 
 A model-based reflex agent should maintain some sort of internal model that depends on the percept history and 
 thereby reflects at least some of the unobserved aspects of the current state. It then chooses an action in the 
 same way as the reflex agent. 
 Goal-based agents further expand on the capabilities of the model-based agents, by using "goal" information. 
 Goal information describes situations that are desirable. This allows the agent a way to choose among multiple 
 possibilities, selecting the one which reaches a goal state. Search and planning are the subfields of artificial 
 intelligence devoted to finding action sequences that achieve the agent's goals. In some instances the goal-based 
 agent appears to be less efficient; it is more flexible because the knowledge that supports its decisions is 
 represented explicitly and can be modified. 
 Goal-based agents only distinguish between goal states and non-goal states. It is possible to define a measure 
 of how desirable a particular state is. This measure can be obtained through the use of a utility function which 
 maps a state to a measure of the utility of the state. A more general performance measure should allow a 
 comparison of different world states according to exactly how happy they would make the agent. 
 The term utility, can be used to describe how "happy" the agent is. A rational utility-based agent chooses the 
 action that maximizes the expected utility of the action outcomes- that is, the agent expects to derive, on 
 average, given the probabilities and utilities of each outcome. A utility-based agent has to model and keep track 
 of its environment, tasks that have involved a great deal of research on perception, representation, reasoning, 
 and learning. 
 Learning has an advantage that it allows the agents to initially operate in unknown environments and to become 
 more competent than its initial knowledge alone might allow. The most important distinction is between the 
 "learning element", which is responsible for making improvements, and the "performance element", which is 
 responsible for selecting external actions. The learning element uses feedback from the "critic" on how the agent 
 is doing and determines how the performance element should be modified to do better in the future.
The performance element is what we have previously considered to be the entire agent: it takes in percepts and 
decides on actions. The last component of the learning agent is the "problem generator". It is responsible for 
suggesting actions that will lead to new and informative experiences.
According to other sources , some of the sub-agents (not already mentioned in this treatment) that may be a part 
of an Intelligent Agent or a complete Intelligent Agent in themselves are: Decision Agents (that are geared to 
decision making); Input Agents (that process and make sense of sensor inputs - e.g. neural network based agents); 
Processing Agents (that solve a problem like speech recognition); Spatial Agents (that relate to the physical 
real-world); World Agents (that incorporate a combination of all the other classes of agents to allow autonomous 
behaviors). Believable agents - An agent exhibiting a personality via the use of an artificial character (the 
agent is embedded) for the interaction. Physical Agents - A physical agent is an entity which percepts through 
sensors and acts through actuators. Temporal Agents - A temporal agent may use time based stored information to 
offer instructions or data acts to a computer program or human being and takes program inputs percepts to adjust 
its next behaviors.

To actively perform their functions, Intelligent Agents today are normally gathered in a hierarchical structure 
containing many sub-agents. Intelligent sub-agents process and perform lower level functions. Taken together, the 
intelligent agent and sub-agents create a complete system that can accomplish difficult tasks or goals with 
behaviors and responses that display a form of intelligence.
